import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui'; // 导入element-ui包
import 'element-ui/lib/theme-chalk/index.css'; // 导入相关样式

Vue.use(ElementUI); // 引用

Vue.config.productionTip = false;

import req from '@/network/request';
Vue.prototype.req = req;
/*//引入axios
import axios from 'axios';
// 设置axios的基本配置
axios.defaults.baseURL = 'user';
axios.defaults.timeout = 3000;*/

//引入vant
import Vant from 'vant';
import { Notify, Icon, Cascader, Toast } from 'vant';
import 'vant/lib/index.css'
import "./assets/iconfont/iconfont.css";

Vue.use(Vant);
Vue.use(Notify);
Vue.use(Cascader);
Vue.use(Toast);
// 引入font-awesome
// import FA from 'font-awesome/css/font-awesome.min.css';
// Vue.use(FA);

//引入主css
require('./assets/css/index.css');

//设置token过期时间
Storage.prototype.setExpire = (key, value, expire) => {
    let obj = {
    token: value,
    time: Date.now(),
    expire: expire
    };
    //localStorage 设置的值不能为对象,转为json字符串
    localStorage.setItem(key, JSON.stringify(obj));
}
//获取token
Storage.prototype.getExpire = key => {
    let val = localStorage.getItem(key);
    if (!val) {
        return val;
    }
    val = JSON.parse(val);
    if (Date.now() - val.time > val.expire) {
        localStorage.removeItem(key);
        return null;
    }
    return val.token;
}
// 全局路由守卫 拦截所有路由
router.beforeEach((to, from, next) => {
  // 获取token
  const token = localStorage.getExpire("token");
  // 有token
  if (token) {
    // 直接放行
    next();
  } else {  // 如果没有
    // 如果去的是登录页
    if (to.path === '/login') {
      // 直接放行
      next();
    } else {
      // 如果去的是其他页,跳转到登录页
      // Message.error('请登录以后再操作！')
      Notify({ type: 'danger', message: '请登录以后再操作！' });
      // 跳转到登录页
      return next({path: "/login"})
    }
  }
})
//  阻止生产提示
Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app');
